package com.pureut.production.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.CutOrdersDocument;
import com.pureut.production.domain.dto.*;
import com.pureut.production.domain.vo.*;

import java.util.List;

/***
 *  分切制令单表 service
 * Author:C
 * Date:2023/02/16 10:16
 * @DESC
 */
public interface CutOrdersDocumentService extends IService<CutOrdersDocument> {

    /**
     * 分切制令单列表
     */
    List<CutOrdersDocumentDto> getList(CutOrdersDocumentVo cutOrdersDocumentVo);

    /**
     * 新增
     */
    boolean add(CutOrdersDocumentVo cutOrdersDocumentVo) throws Exception;

    /**
     *是否免检修改（1：开，2：关）
     */
    boolean getSwitch(SwitchVo switchVo);

    /**
     * 查看
     */
    CutOrdersDocumentDto getViewById(Long id);

    /**
     * 上线
     */
    boolean goOnline(CutOrdersDocumentVo cutOrdersDocumentVo);

    /**
     * 分切完成
     */
    SlittingCompletionDto slittingCompletion(SlittingCompletionVo slittingCompletionVo) throws Exception;

    /**
     * 分卷
     */
    SubVolumePdaDto subVolume(SubVolumeVo subVolumeVo) throws Exception;

    /**
     * 停产
     */
    boolean stopProduction(Long id);

    /**
     * 单据完成
     */
    boolean completionDocuments(Long id);

    /**
     * 关结
     */
    boolean close(CloseVo closeVo);

    /**
     * 查询水刺及分切数据
     */
    List<SelectCombinationListDto> selectCombinationList(SelectCombinationListVo selectCombinationListVo);

    /**
     * 废料打印
     */
    boolean wastePrint(WasteTubeVo wasteTubeVo) throws Exception;

    /**
     * 手持pda 投料
     */
    List<CutFeedDto> cutFeedList(CutFeedVo cutFeedVo);

    /**
     * 手持pda 投料详情
     */
    CutFeedDto cutFeedView(int number,Long id);

    /**
     * 通过id线别名称及编码
     */
    List<GetDataLineTypeNameDto> getDataLineTypeName(Long id);

    /**
     * 通过阶别，线别编码查询生产中的制令单号
     */
    List<OrderNumDto> getOrderNum(GetOrderNumVo getOrderNumVo);

    /**
     * 分切制令单pda产出列表
     */
    List<PdaDto> pdaList(PdaVo pdaVo);
}
